package com.fdb.efp.nls.service.facade;

import com.fdb.efp.nls.service.vo.CoeffCfgVO;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 * <p>
 * 提额系数配置表的Service类
 * </p>
 * @author szbd
 * @createDate 2018-09-17 15:10:09
 */
public interface CoeffCfgService {
    
    /**
     * 查询本人所属的记录
     * @param coeffCfgVo
     * @return
     */
    public List<CoeffCfgVO> queryAllOwner(CoeffCfgVO coeffCfgVo);
    
    /**
     * 查询本机构的记录
     * @param coeffCfgVo
     * @return
     */
    public List<CoeffCfgVO> queryAllCurrOrg(CoeffCfgVO coeffCfgVo);
    
    /**
     * 查询本机构及下属机构的记录
     * @param coeffCfgVo
     * @return
     */
    public List<CoeffCfgVO> queryAllCurrDownOrg(CoeffCfgVO coeffCfgVo);
    
    /**
     * 插入提额系数配置表记录
     * @param coeffCfgVo
     * @return
     */
    public int insertCoeffCfg(CoeffCfgVO coeffCfgVo);
    
    /**
     * 根据主键删除提额系数配置表记录
     * @param coeffCfgVo
     * @return
     */
    public int deleteCoeffCfgByPk(CoeffCfgVO coeffCfgVo);
    
    /**
     * 根据主键更新提额系数配置表记录
     * @param coeffCfgVo
     * @return
     */
    public int updateCoeffCfgByPk(CoeffCfgVO coeffCfgVo);
    
    /**
     * 查询提额系数配置表记录
     * @param coeffCfgVo
     * @return
     */
    public CoeffCfgVO queryCoeffCfgByPk(CoeffCfgVO coeffCfgVo);
    
    /**
     * 条件查询单笔提额系数配置表记录
     * @param coeffCfgVo
     * @return
     */
    public CoeffCfgVO querySingleCoeffCfgByCondition(CoeffCfgVO coeffCfgVo);
    
    /**
     * 条件查询提额系数配置表记录
     * @param coeffCfgVo
     * @return
     */
    public List<CoeffCfgVO> queryCoeffCfgByCondition(CoeffCfgVO coeffCfgVo);
    
    /**
     * 条件分页查询提额系数配置表记录
     * @param coeffCfgVo
     * @return
     */
    public List<CoeffCfgVO> queryCoeffCfgByConditionByPage(CoeffCfgVO coeffCfgVo);

    /**
     * 查询类型代码 对应的 系数
     * @param typeCodes 类型代码集合
     * @param legalCode 法人机构
     * @return key: 类型代码, value: 系数
     */
    Map<String, BigDecimal> queryCoffByLegalTypes(List<String> typeCodes, String legalCode);
    
}